SQL Server - Notas sobre a instalação e configuração do windows e Microsoft SQL Server

I-Dicas de instalação

1-Crie uma pasta onde você colocará todas as informações de cada ponto da rede. Cada ponto da rede em uma pasta separada dentro dessa pasta.

2-Levante todas as informações que puder sobre o hardware de instalação como processador, memória, discos. Note bem que alguns recursos de hardware fazem uma diferença gigantesca no servidor como, por exemplo, discos SSD ou memória.

3-Planeje, se possível, onde irá ficar no disco cada banco de dados, tabelas, índices. Planeje e distribua as tabelas nos discos de maneira a deixar todos os discos com a mesma taxa de utilização, ou seja, distribua a carga entre os discos.

4-Bancos de dados como MS SQL Server são muito dependentes de alguns processos como o LOG. Portanto aconselho a colocar os arquivos de log e tempdb em discos diferentes e separados dos demais discos do servidor.

5-Levante os quesitos que o servidor SQL terá que atender antes de começar a instalação.
Lembre-se que certos quesitos só são possíveis de ser instalados ou retirados numa nova reinstalação do Servidor SQL Server ( como full text search entre outros ).

6-Seja o mais enxuto possível, cada byte economizado conta. Jamais instale recursos que você acha que serão necessários. Instale apenas o que você já sabe que será necessário, nada mais.

II-Dados para acesso do servidor remotamente

Anote dados sobre o servidor para futuros acessos

Se você administra apenas um servidor então você esta tranquilo, não precisa de muita coisa. Contudo quando o parque passa de 4 máquinas você não vai sentar em frente a máquina para fazer uma manutenção, fica muito mais fácil através do seu micro acessar os servidores via terminal services ou ferramenta equivalente.

Informação Valor
Versão do Sistema Operacional Windows7, 8, 10, Linux Mint, IOS
Versão do Serviço SQL Server MS SQL Server 2015,2016,2018; Postgre SQL 6
Nome do Servidor na rede SRVSQLMS001
Instância a ser utilizada SRVXXX\INSTANCIAXXX
Senha do sa XXX
Tipo da autenticação Local : windows authentication, SQL Server ou Integrada
Usuario username : SRVXXX\USUXXX

III-Conexão remota com o servidor MS SQL Server-Testando conexão

    Clique no ‘Iniciar’ do Windows e digite ‘conex’        e vai ser exibido ‘conexão de área de trabalho remota’     Clique no ‘Iniciar’ do Windows e digite ‘conex’        e vai ser exibido ‘conexão de área de trabalho remota’
    No Nome do Servidor digite ‘SRVXXX’
    No Nome do usuário digitar ‘SRVXXX\USUXXX’
    Na senha do usuário digitar ‘SenhaXXX’

IV-Permitindo acesso remoto ao servidor: Windows 8 (entre outros)

    Clique com o botão direito do mouse no ícone ‘Iniciar’
    Selecione ‘Sistema’
    Na lateral esquerda clique em ‘Configurações Remotas’
    Selecione a caixa ‘Permitir conexões remotas com este computador’

V-Criando novos usuário para acesso remoto ao sql server

O servidor no momento de sua instalação tem apenas o usuário sa instalado e alguns outros com propósitos administrativos específicos. Sugiro guardar a senha do sa num cofre a 7 chaves e nunca divulgar essa senha para ninguém. Crie usuários ou grupos administrativos para executar tarefas específicas. Por exemplo, um usuário pode ter acesso apenas de leitura em algumas tabelas ou nem ter acesso a elas de acordo com o perfil dela e da tabela.

    Não deve-se usar a senha do sa nunca por razões de segurança..
    Sempre aconselho a criar um com permissão somente de leitura e outro com permissão de escrita. Já o acesso ao admin do sistema é coisa para usuários avançados.
    1-Abra o MS SQL Server Management Studio
    2-Abra a aba ‘Segurança’
    3-Clique na aba ‘Logons’ com o botão direito do mouse e selecione ‘Novo Logon’
    4-Digite no box ‘Nome de Logon’ o nome do novo usuário : usucomum
    5-Selecione o box ‘Autenticação do SQL Server’
    6-Digite no box ‘Senha’ a senha do usuário SenhaXXX
    7-Digite no box ‘Confirmar Senha’ a senha do usuário novamente
    8-Deixe o box ‘Impor Politica de Senha’ ativado
    9-Deixe o box ‘Impor vencimento de Senha’ desativado
    10-Deixe o box ‘O usuário deve trocar a senha no próximo login’ desativado
    11-Na aba da esquerda em ‘Funções de servidor’ (Server Roles) selecionar as funções de servidor que o usuário deverá ter acesso.
        O default é só public. Deixei só public.
    12- Na aba da esquerda em ‘Mapeamento de usuário’ (User Mapping) selecionar os bancos de dados que o usuário deverá ter acesso.
        O default é nenhum. Adicionei Agenda e Adventureworks2014.
    13-Na parte inferior verifique as permissões administrativas dele. No meu ficou só public.
    14-Clique no botão ‘OK’ e o usuário será criado.

VI-Modos de autenticação aceitos pelo SQL Server

Por default apenas o login pelo Windows vem selecionado.

    Para selecionar o login pelo SQL Server faça o seguinte:
    1- Abra o MS SQL Server Management Studio
    2-Clique com o Botão direito do mouse em cima do servidor
    3-Selecionar ‘Propriedades’
    4-Abra a aba ‘Segurança’
    5-Na área ‘autenticação do servidor‘ selecione o box ‘Modo de autenticação do SQL Server e do Windows’.

VII-Acessando o MS SQL Server Configuration Manager

    1-Quando você instala o SQL Server é também instalado o Configuration Manager mas não há atalhos para ele.
    2-Procure por 'Configuration' ou vá até pasta C:\Windows\SysWOW64 encontramos o arquivo SQLServerManager14.msc
    3-Abra o MS SQL Server Configuration Manager ( ou o arquivo SQLServerManager14.msc)
    4-Vá em todos os menus e habilite o protocolo TCPIP e Named Pipes em ‘Configuração de rede do SQL Server’

VIII-Protocolos para acesso ao SQL


        - Verifique também a porta que eles estão funcionando.
            -Selecione a aba 'Protocols for INSTANCIAXXX' - TCP/IP e clique com o botão direito do mouse
                -Selecione 'Propriedades'
                -Selecione a aba 'IP Adresses'
                -Em todas as linhas onde tenha o 'TCP DYNAMIC PORTS' igual a zero apague o zero.
                    'TCP DYNAMIC PORTS' obriga a porta de conexão a ser dinâmica e isso dificulta o acesso remoto.
        -Abra a aba 'Protocols for INSTANCIAXXX', Clique com o botão direito do mouse em 'TC/PIP' e selecione propriedades
            -Selecione a aba 'IP Adresses' e vá até o item 'IPAll'
                -Na linha 'TCP Port' coloque o número 1433 (porta default do ms sql srv)
    -Clique na aba 'SQL Server Services' e verifique se o serviço 'SQL Server Browser' está sendo executado.
        Se não estiver vá no Painel de Controle, Ferramentas Administrativas e inicie o Serviço

IX-Importante

    1-Na conexão com o servidor devemos indicar o servidor e a instância do SQL Server para conectar a ele.
    2-Portanto ao tentar conectar somente com o servidor será exibido um erro de conexão.
        No meu caso a conexão correta ficou sendo :         SRVXXX\INSTANCIAXXX

X-Acessando o servidor via SQL SRV Management Studio

    1-Faça a conexão local com o SQL SRV Management Studio e verifique que o novo usuário funcione normalmente.
    Server type : Database Engine
    Server name : SRVXXX\INSTANCIAXXX
    Authentication: SQL Server Authentication
    Login : usuXXX
    Senha : senhaXXXX
    Só prossiga o passo 9 se o 8 foi executado com sucesso.

XI-Antes de abrir a porta no firewall verifique se é realmente ele que está bloqueando seu acesso.

    No micro ‘servidor’ desabilite o firewall nas conexões locais e faça o teste de conexão com o SQL Server Management Studio.
    Se o problema continuar ainda tem mais coisas e deixe o firewall por último.
    NÃO SE ESQUEÇA DE REHABILITAR OS FIREWALLS DOS DO SERVER E DO CLIENT. Ao fazer isso você perderá a conexão remota.

XII-Descobrindo onde o programa sql server esta localizado

    -Para abri o firewall precisamos localizar corretamente o programa sql server que esta sendo executado.
    -Para isto abra o MS SQL Server Management Studio
    -Clique com o botão direito do mouse no Servidor e em seguida em 'Propriedades'
    -Na caixa 'Root Directory' esta o programa :
        C:\Program Files\Microsoft SQL Server\MSSQL12.INSTANCIAXXX\MSSQL

XIII-Abrindo o firewall para o MS SQL SRV no servidor

    -Nota : O Firewall no cliente não atrapalha a conexão com o servidor.
    Por padrão, as portas normais usadas pelo SQL Server e os serviços de mecanismo de banco de dados associados são:
    
    TCP
    1433    Database Engine
    1434    SQL Admin Connection
    4022    SQL Service Broker
    135     SQL Debugger/RPC
        Portanto abriremos as portas 1433, 1434, 4022, 135

    UDP
    1434    SQL Browser

    1-Vamos abrir o TCPIP servidor para a rede local nas portas 1433, 1434, 4022, 135:
    2-Vá no Windows Firewall do servidor
    3-Clique em ‘Configurações Avançadas’
    4-Clique em ‘Regras de Entrada’
    5-No painel direito, em Ações, clique em 'Nova regra'.
    6-Em Tipo de regra, clique em 'Portas'. Selecione Avançar.
    7-Em Portas e Procotocolos selecione 'TCPIP' e em Specific local ports digite 1433, 1434, 4022, 135. Clique em Next
    8-Selecione 'Habilitar conexão'
    9-Na janela profile deixe marcado apenas o perfil 'Private' (Não habilite Domain e Public)
    10-Em Nome, digite um nome para a regra. Selecione Concluir.

    11-Vamos abrir o UDP servidor para a rede local na porta 1434:
    12-Vá no Windows Firewall do servidor
    13-Clique em ‘Configurações Avançadas’
    14-Clique em ‘Regras de Entrada’
    15-No painel direito, em Ações, clique em 'Nova regra'.
    16-Em Tipo de regra, clique em 'Portas'. Selecione Avançar.
    17-Em Portas e Procotocolos selecione 'UDP' e em Specific local ports digite 1434. Clique em Next
    18-Selecione 'Habilitar conexão'
    19-Na janela profile deixe marcado apenas o perfil 'Private' (Não habilite Domain e Public)
    20-Em Nome, digite um nome para a regra. Selecione Concluir.
    Nota : sem a abertura deste ultimo port não é possível fazer conexão Remota.



XIV-Extras

XIV-1-Dando acesso a funções administrativas de servidor ao usuário:
    Todos os usuários do SQL server podem executar algumas tarefas administrativas do Windows NT.
    Na instalação default, nenhum usuário tem privilégios administrativos na máquina local.
    Caso precise, altere:
    1- Abra o MS SQL Server Management Studio
    2-Clique com o Botão direito do mouse em cima do servidor
    3-Selecionar ‘Propriedades’
    4-Clique na Aba ‘Permissões’
    5-Selecione o ‘Logon’ do usuário
    6-Selecione o privilégio administrativo que deseja para ele.

XV-Integrando o Excel e o SQL Server

    -No SQL Server 2016 já vem instalado o ‘Microsoft.ACE.OLEDB.16.0’
    -É necessário instalar no servidor o ‘Microsoft.ACE.OLEDB.12.0’ através do ‘Data Connectivity Components’

XVI-Para identificar a instância do SQL Server que esta sendo executada no momento.

    O SQL Server roda num processo identificado como sqlservr.exe. Ele normalmente encontra-se em:
    C:\Program Files\Microsoft SQL Server\MSSQL13.<InstanceName>\MSSQL\Binn\sqlservr.exe
    C:\Program Files\Microsoft SQL Server\MSSQL12.INSTANCIAXXX\MSSQL\Binn\sqlservr.exe

XVII-Dicas de Manutenção

Recomendamos que todo dia junto com o backup seja executado uma verificação na integridade do disco (CHKDSK) bem como um DBCC em todos os bancos de dados do sistema. Lógicamente, no devido horário pois esses processos carregam em muito o servidor.

XVIII-Dicas de Performance e Tunning


Regra de ouro no SQL Server

Traga, sempre, o mínimo de informação possível do servidor.

1-Ao executar um processo no servidor tenha certeza que ele esta otimizado para utilizar o mínimo de recursos do sistema.

XIX-Dicas de Especialista

A gente esta acostumado a pesquisar muita coisa na Internet e, às vezes, por desatenção, podemos cometer erros. Um exemplo que cito é a diferença do Query-Hint NOLOCK entre o Oracle e o MS SQL Server. Hoje não estou certo mas alguns anos atrás quando executavamos um select no Oracle ele automaticamente dava um lock nos registros pensando que em seguida viria um update. Por isso o NoLock no Oracle antigo era um bom query-hint.

Ai os analistas consultando na Internet o problema de lock de registros de uma tabela e copiam a solução da Oracle para o MS SQL Server. Só que o MS SQL Server não funciona igual ao Oracle. Todos sabemos que ao ler dirty-pages podemos obter resultados que na realidade nunca existiram.
Se você usa a query-hint NoLock no MS SQL Server está usando o SQL Server para ser um bloco de notas, precisa melhorar seu processo.